import java.util.regex.Matcher;
import java.util.regex.Pattern;

import io.github.biezhi.elves.utils.StringUtils;

public class testMatchData {
	public static void main(String[] args) {
		matchHtml();
//		matchProjectCode();
		matchTargetContent();
//		matchWinBiddingName();
//		matchProjectPrice();
		
//		matchProjectName();
	}
	
	private static void matchTargetContent() {
		try {
			String result = "";
			String targetConent = "广东省政府采购中心  受 韩山师范学院的委托，对 大数据产教融合应用型人才培养建设项目 进行公开招标采购，欢迎符合资格条件的供应商投标。";
			targetConent = "国义招标股份有限公司   受 中山大学附属肿瘤医院的委托，对 肿瘤影像大数据的移动互联网应用体系建设项目（中山大学附属肿瘤医院采购影像大数据挖掘分析系统） 进行公开招标采购，欢迎符合资格条件的供应商投标。";
			targetConent = "广东元正招标采购有限公司受广东省农业厅的委托，对广东省网络涉农舆情监测分析大数据平台建设项目进行公开招标采购，欢迎符合资格条件的供应商投标。";
			targetConent = "广东省政府采购中心（以下简称“集中采购机构”）受广东省经济和信息化委员会（以下简称“采购人”）的委托，对大数据标准服务支撑平台项目进行公开招标采购，欢迎符合资格条件的供应商参加。";
			targetConent = "广东和盛招标代理有限公司受东莞市政务服务办公室的委托，于2018 年07月10 日就东莞市“智网工程”信息系统项目（二期）（441900-201805-0001003101-0009）采用公开招标进行采购。现就本次采购的中标（成交）结果公告如下：";
			System.out.println("原话：" + targetConent);
			String utilRegex = "受 [\\s\\S]+";
			Pattern pattern = Pattern.compile(utilRegex);
			Matcher matcher = pattern.matcher(targetConent);
			while (matcher.find()) {
				result = matcher.group();
				result = result.replace("受 ", "");
				result = result.replace("的委托", "");
			}
			if (StringUtils.isNullOrEmpty(result)) {
				utilRegex = "受[\\s\\S]+的委托";
				pattern = Pattern.compile(utilRegex);
				matcher = pattern.matcher(targetConent);
				while (matcher.find()) {
					result = matcher.group();
					result = result.replace("受", "");
					result = result.replace("的委托", "");
				}
			}
			System.out.println(result);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	/**
	 *  匹配中标人名称
	 */
	private static void matchWinBiddingName() {
		try {
			String resultString = "";
			StringBuffer resultBuffer = new StringBuffer();
			String targetConent = "<p style='font-family: 仿宋_GB2312; font-size: 12pt;'>1：中标供应商名称"
					+ "<u>&nbsp;&nbsp;深圳华数机器人有限公司&nbsp;&nbsp;</u>法人代表<u>&nbsp;&nbsp;"
					+ "熊清平&nbsp;&nbsp;</u>地址<u>&nbsp;&nbsp;广东省深圳市南山区高新区南区华中科技大学深圳产"
					+ "学研基地大楼A座十一层A1101-A1103&nbsp;&nbsp;</u>&nbsp;&nbsp;(（包组一）)&nbsp;&nbsp;</p>"
					+ "<p style='font-family: 仿宋_GB2312; font-size: 12pt;'>2：中标供应商名称<u>&nbsp;&nbsp;"
					+ "巨轮智能装备股份有限公司&nbsp;&nbsp;</u>法人代表<u>&nbsp;&nbsp;吴潮忠&nbsp;&nbsp;"
					+ "</u>地址<u>&nbsp;&nbsp;广东省揭东经济开发区5号路中段&nbsp;&nbsp;</u>&nbsp;&nbsp;"
					+ "(（包组二）)&nbsp;&nbsp;</p>";
			//targetConent = "<p style='FONT-FAMILY: 仿宋_GB2312; FONT-SIZE: 12pt'>1：中标供应商名称<u>&nbsp;&nbsp;广东易达电子科技有限公司&nbsp;&nbsp;</u>法人代表<u>&nbsp;&nbsp;余祖开&nbsp;&nbsp;</u>地址<u>&nbsp;&nbsp;广东省陆丰市东海镇玉印综合楼5-6层&nbsp;&nbsp;</u>&nbsp;&nbsp;&nbsp;&nbsp;</p>";
			System.out.println("原话：" + targetConent);
			targetConent = targetConent.replaceAll("\\s*", "").replace("&nbsp;", "");
			System.out.println(targetConent);
			String utilRegex = "中标供应商名称<u>[\\u4e00-\\u9fa5]+</u>法人代表";
			Pattern pattern = Pattern.compile(utilRegex);
			Matcher matcher = pattern.matcher(targetConent);
			while (matcher.find()) {
				String result = matcher.group();
				result = result.replace("中标供应商名称<u>", "");
				result = result.replace("</u>法人代表", "");
				resultBuffer.append(result).append(",");
			}
			resultString = resultBuffer.toString();
			if(resultString.lastIndexOf(",") != -1) {
				resultString = resultString.substring(0, resultString.lastIndexOf(","));
			}
			System.out.println(resultString);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	/**
	 *  匹配金额
	 */
	private static void matchWinningBidPrice() {
		try {
			String resultString = "";
			StringBuffer resultBuffer = new StringBuffer();
			String targetConent = "<td style='height:22.5pt;'><p style='text-align:center;'><span style='font-family:宋体;'>-</span></p>";
			System.out.println("原话：" + targetConent);
			targetConent = targetConent.replaceAll("\\s*", "").replace("&nbsp;", "");
			System.out.println(targetConent);
			String utilRegex = "中标供应商名称<u>[\\u4e00-\\u9fa5]+</u>法人代表";
			Pattern pattern = Pattern.compile(utilRegex);
			Matcher matcher = pattern.matcher(targetConent);
			while (matcher.find()) {
				String result = matcher.group();
				result = result.replace("中标供应商名称<u>", "");
				result = result.replace("</u>法人代表", "");
				resultBuffer.append(result).append(",");
			}
			resultString = resultBuffer.toString();
			if(resultString.lastIndexOf(",") != -1) {
				resultString = resultString.substring(0, resultString.lastIndexOf(","));
			}
			System.out.println(resultString);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	/**
	 * 匹配日期
	 */
	private static void matchHtml() {
		try {
			String result = "七、符合资格的供应商应当在 2018年05月22日 至 2018年05月28日 期间（上午08:30至12:00,下午14:00至17:30，法定节假日除外,不少于5个工作日）到 广东省政府采购中心（详细地址：本项目仅接受网上报名，供应商网上报名须知：供应商可登陆我中心网站供应商报名系统（http://www.gpcgd.com/gpcgd/portal/portal-news!listWb）进行注册报名，办理步骤请点击系统内“供应商网上报名操作指南”。供应商在注册审核通过后，于采购项目公告规定的报名时间内在该系统内选择需要报名的项目公告，填写好报名表即为报名成功。）购买招标文件，招标文件每套售价0元（人民币），售后不退。";
//			result = "六、符合资格的供应商应当在2013年5月31日起至2013年6月17日 期间（";
//			result = "七、符合资格的供应商应当在 2018年04月23日 至 2018年04月28日 期间（上午09:00至11:30,下午14:30至16:30，法定节假日除外,不少于5个工作日）到 国义招标股份有限公司 （详细地址：广州市东风东路726号1楼）购买招标文件，招标文件每套售价150元（人民币），售后不退。";
//			result = "六、符合资格的供应商应当在2013年10月18日起至2013年11月4日 期间（办公时间内，法定节假日除外）到";
			result = "七、符合资格的供应商应当在 2017年8月14日 至 2017年8月28日 期间（上午09:00至12:00,下午14:00至17:00，法定节假日除外,不少于5个工作日）到 广东志正招标有限公司（详细地址：广州市天河区天阳路153、157号南骏大厦301-303室）购买招标文件，招标文件每套售价300元（人民币），售后不退。";
			result = "符合资格的供应商应当在2013年10月18日起至2013年11月4日 期间（办公时间内，法定节假日除外）到 广东志正招标有限公司（详细地址：  广州市天河区天阳路153、157号南骏大厦301-303室 ）购买招标文件，招标文件每套售价200元（人民币），售后不退。";
			result = "六、符合资格的供应商应当在2014年04月16日至2014年04月23日期间（办公时间内，法定节假日除外）到（广东元正招标采购有限公司）（详细地址：广州市沙河龙岗路8号粤信大厦19楼）购买招标文件，招标文件每套售价200元（人民币），售后不退。购买时需提供以下资料：";
			result = "七、评审日期：2018-07-10评审地点：广东省东莞市南城区西平社区宏伟三路45号东莞市公共资源交易中心开标6室";
			System.out.println("原话：" + result);
			String utilRegex = "\\d{4}年\\d{2}月\\d{2}日 \\d{2}:\\d{2}:\\d{2} \\d{3}";
			utilRegex = "\\d{4}年\\d{1,2}月\\d{1,2}日 至 ";
//			utilRegex = "\\d{4}年\\d{2}月\\d{2}日 至 \\d{4}年\\d{2}月\\d{2}日 期间（上午\\d{2}:\\d{2}至\\d{2}:\\d{2},下午\\d{2}:\\d{2}至\\d{2}:\\d{2}";
			utilRegex = "\\d{4}年\\d{1,2}月\\d{1,2}日起至";
//			utilRegex = "\\d{4}年\\d{1,2}月\\d{1,2}日起至\\d{4}年\\d{1,2}月\\d{1,2}日 期间（";
			utilRegex = "\\d{4}年\\d{1,2}月\\d{1,2}日至";
//			utilRegex = "\\d{4}年\\d{1,2}月\\d{1,2}日至\\d{4}年\\d{1,2}月\\d{1,2}日 期间（";
			utilRegex = "\\d{4}-\\d{1,2}-\\d{1,2}";
			Pattern pattern = Pattern.compile(utilRegex);
			Matcher matcher = pattern.matcher(result);
			while (matcher.find()) {
				System.out.println("过滤后: " + matcher.group().replace("期间（", "").replaceAll("\\s*", "").replace("起至", "").replace("至", ""));
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	/**
	 * 匹配项目编号
	 */
	private static void matchProjectCode() {
		String result = "";
		try {
			StringBuffer buffer = new StringBuffer();
			buffer.append("广东广播电视台智能聚合推荐视频APP大数据服务（GZGP17-PZ09-FG027）公开招标公告")
				.append(",")
				.append("广东工业大学高清高速多相机光场大数据采集系统采购项目（重招）（GZSW17156HG2153C）招标公告")
				.append(",")
				.append("肿瘤影像大数据的移动互联网应用体系建设项目（中山大学附属肿瘤医院采购肿瘤影像大数据应用系统）（项目编号：0724-1701D20N3091）公开招标公告")
				.append(",")
				.append("智能聚合推荐视频APP项目（大数据平台扩容）（招标编号：DXZ201710S003）招标公告")
				.append(",")
				.append("一、采购项目编号：440000-201709-185001-0023")
				.append(",")
				.append("广东省环境管理大数据应用及市县试点项目（项目编号：0835-1601224N2101）公开招标公告");
			String targetConent = buffer.toString();
//			targetConent =  "采购项目编号：　GPCGD153105FG134F　";
			targetConent =  "佛山市顺德区行政服务中心广东省网上办事大厅顺德分厅维护服务（招标编号：GZSWSD18FG2028）的中标公告";
			targetConent =  "采购项目编号：441900-201805-0001003101-0009</span>";
			targetConent = targetConent.replaceAll("\\s+", "");
			String[] resultStrs = targetConent.split(",");
			for(String resultStr : resultStrs) {
				System.out.println("原话：" + resultStr);
				String utilRegex = "[a-zA-Z0-9-]{6,20}+";
				Pattern pattern = Pattern.compile(utilRegex);
				Matcher matcher = pattern.matcher(resultStr);
				while (matcher.find()) {
					result = matcher.group();
				}
			}
			if(StringUtils.isNullOrEmpty(result)) {
				String utilRegex = "采购项目编号：[a-zA-Z0-9-]{6,20}+";
				Pattern pattern = Pattern.compile(utilRegex);
				Matcher matcher = pattern.matcher(targetConent);
				while (matcher.find()) {
					result = matcher.group();
				}
			}
			System.out.println("过滤后: " + result);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	/**
	 * 匹配项目预算
	 */
	private static void matchProjectPrice() {
		try {
			StringBuffer buffer = new StringBuffer();
			buffer.append("三、采购预算：40万元")
				.append("四、项目内容及需求：a(采购项目技术要求)")
				.append("大数据工程设计,详见用户需求书。")
				.append("供应商网上报名须知：供应商可登陆www.gpcgd.com广东省政府采购中心网站，点击网站右下方");
			String result = buffer.toString();
			result = "中标金额：285.876 万元（人民币）中标供应商名称、联系地址及中标金额：广州市天河区中山大道华景路1号南方通信大厦24-25楼本项目招标代理费总金额：0.0  万元";
			result = "三、采购项目预算金额（元）：4,865,000 </span>";
			System.out.println("原话：" + result);
			String utilRegex = "采购预算：[0-9]+万元";
			utilRegex = "中标金额：([1-9]\\d*\\.?\\d*)|(0\\.\\d*[1-9])+万元";
			utilRegex = "采购项目预算金额（元）：([1-9]\\d*\\,?\\d*,\\,?\\d*)|(0\\,\\d*[1-9],\\d*[0-9])";
			Pattern pattern = Pattern.compile(utilRegex);
			Matcher matcher = pattern.matcher(result);
			while (matcher.find()) {
				result = matcher.group();
				result = result.replace("采购预算：", "");
				System.out.println(result);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	/**
	 * 匹配项目项目
	 */
	private static void matchProjectName() {
		String result = "";
		try {
			String targetContent = "采购项目名称：东莞市“智网工程”信息系统项目（二期）三、采购项目预算金额（元）：4,865,000四、采购方式：公开招标五、中标供应商1：中标供应商名称  广东建邦计算机软件股份有限公司  法人代表  叶建辉  地址  东莞市东城区同沙科技工业园硅谷动力2025科技园C2栋      六、报价明细主要中标、成交标的名称规格型号数量单价（元）服务要求中标、成交金额（元）广东建邦计算机软件股份有限公司////4,864,900.00                              七、评审日期：2018-07-10评审地点：广东省东莞市南城区西平社区宏伟三路45号东莞市公共资源交易中心开标6室评审委员会（谈判小组、询价小组、磋商小组或单一来源采购小组）：负责人：李文成员：罗希、李星原、陈月侠、翟文辉八、本项目代理收费标准：按国家计委[计价格[2002]1980号]文收费金额：57514九、评审意见（非标采购方式或竞争性磋商采购方式采用书面推荐供应商参加采购活动的，还应当公告采购人和评审专家的推荐意见）经评审，广东建邦计算机软件股份有限公司被推荐为本项目第一中标候选人。十、本公告期限1个工作日。中标、成交标的名称规格型号数量单价（元）服务要求中标、成交金额                  十一、联系事项：（一）采购项目联系人（代理机构）：钟小姐联系电话：0769-22019033采购项目联系人（采购人）：翟先生联系电话：0769-22210793（二）采购代理机构：广东和盛招标代理有限公司地址：广州市越秀区东风中路501-503号1002、1004、1006房（仅限办公用途）联系人：郑锦彬联系电话：020-37023498传真：020-37023518邮编：510054（三）采购人：东莞市政务服务办公室地址：广东省东莞市南城鸿福路99号行政中心三楼联系人：钟洁茹联系电话：0769-22830360传真：0769-22830360邮编：523000各有关当事人对中标、成交结果有异议的，可以在中标、成交公告发布之日起7个工作日内以书面形式向（政府采购代理机构）（或采购人）提出质疑，逾期将依法不予受理。附件：招标文件（竞争性谈判文件、询价通知书、竞争性磋商文件）招标文件发布人：广东和盛招标代理有限公司发布时间：2018年07月20日广东和盛招标代理有限公司|东莞市政务服务办公室|";
			System.out.println("原话：" + targetContent);
			String utilRegex = "采购项目名称：[\\s\\S]+";
			Pattern pattern = Pattern.compile(utilRegex);
			Matcher matcher = pattern.matcher(targetContent);
			while (matcher.find()) {
				result = matcher.group();
				result = result.replace("采购项目名称：", "");
				System.out.println(result);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}